﻿namespace Idiom.GetIdiom
{
    public class GetAllPage
    {
        //// 取出相关成语的   string regexCode = "title=\"([\\u4e00-\\u9fa5]+)";     

        ////按字母获取字母的第一页
        //public static void GetPageLevelOne()
        //{
        //    string path1 = @"C:\Users\wulix\Desktop\成语\第一层";
        //    string[] letter = { "A", "B", "C", "D", "E", "F", "G", "H", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "V", "W", "X", "Y", "Z" };
        //    foreach (var item in letter)
        //    {
        //        string htmlUrl = string.Format(@"http://tools.2345.com/chengyu/{0}/{1}.htm", item, item);
        //        string path = path1 + Path.DirectorySeparatorChar + item + ".html";
        //        Console.WriteLine(htmlUrl);
        //        XJHTTP xJHTTP = new XJHTTP();
        //        string res = xJHTTP.GetHtml(htmlUrl).Html;
        //        File.WriteAllText(path, res, Encoding.UTF8);


        //    }


        //}
        //public static void GetPageLevelTwo()
        //{
        //    string htmlPath = @"C:\Users\wulix\Desktop\成语\第一层";
        //    string aimPath = @"C:\Users\wulix\Desktop\成语\第二层/";
        //    DirectoryInfo directoryInfo = new DirectoryInfo(htmlPath);
        //    foreach (var item in directoryInfo.GetFiles())
        //    {
        //        string fileString = File.ReadAllText(item.FullName,Encoding.UTF8);
        //        string fileName = item.Name.Remove(item.Name.Length - 5);
        //        string regexCode =$"<a  href=\"{fileName}_[0-9]+.htm\">[0-9]+</a>";
        //        Regex regex = new Regex(regexCode);
        //        MatchCollection s =  regex.Matches(fileString);
        //        string res="";
        //        for (int i = 0; i < s.Count; i++)
        //        {
        //            res = res+s[i].Value;
        //        }


        //       File.WriteAllText(aimPath+item.Name,res,Encoding.UTF8);
        //        Console.WriteLine(res);

        //    }



        //}
        //public static void GetPageLevelThree()
        //{

        //    string htmlPath = @"C:\Users\wulix\Desktop\成语\第二层";
        //    string aimPath = @"C:\Users\wulix\Desktop\成语\第三层/";
        //    DirectoryInfo directoryInfo = new DirectoryInfo(htmlPath);
        //    foreach (var item in directoryInfo.GetFiles())
        //    {
        //        string fileString = File.ReadAllText(item.FullName, Encoding.UTF8);
        //        string fileName = item.Name.Remove(item.Name.Length - 5);
        //        string regexCode = "[0-9]+";
        //        Regex regex = new Regex(regexCode);
        //        MatchCollection s = regex.Matches(fileString);
        //        List<int> sRes =new  List<int>();
        //        for (int i = 0; i < s.Count; i++)
        //        {
        //            int sint = Convert.ToInt32(s[i].Value);
        //            if (!sRes.Contains(sint))
        //            {
        //                sRes.Add(sint);
        //            }
        //        }
        //        int max= sRes.Max();
        //        File.WriteAllText(aimPath + item.Name, string.Format(@"http://tools.2345.com/chengyu/{0}/{1}.htm", fileName, fileName), Encoding.UTF8);
        //        for (int i = 2; i <= max; i++)
        //        {
        //            string savaFileName = aimPath + string.Format(@"{0}_{1}.htm", fileName, i);
        //            string savaFileUrl = string.Format(@"http://tools.2345.com/chengyu/{0}/{1}_{2}.htm", fileName, fileName,i);
        //            File.WriteAllText(savaFileName, savaFileUrl, Encoding.UTF8);
        //        }

        //     //  StringBuilder sb = new StringBuilder();


        //        //File.WriteAllText(aimPath + item.Name, res, Encoding.UTF8);
        //       // Console.WriteLine(res);

        //    }

        //}
        //public static void GetPageLevelFour()
        //{

        //    string htmlPath = @"C:\Users\wulix\Desktop\成语\第三层";
        //    string aimPath = @"C:\Users\wulix\Desktop\成语\第四层/";
        //    DirectoryInfo directoryInfo = new DirectoryInfo(htmlPath);
        //    foreach (var item in directoryInfo.GetFiles())
        //    {
        //        string fileString = File.ReadAllText(item.FullName, Encoding.UTF8);
        //       // string fileName = item.Name;
        //        XJHTTP xJHTTP = new XJHTTP();
        //        File.WriteAllText(aimPath + item.Name, xJHTTP.GetHtml(fileString).Html, Encoding.UTF8);

        //    }

        //}
        //public static void GetPageLevelFive()
        //{

        //    string htmlPath = @"C:\Users\wulix\Desktop\成语\第四层";
        //    string aimPath = @"C:\Users\wulix\Desktop\成语\第五层/";
        //    StringBuilder sb = new StringBuilder();
        //    string regexCode = " <li><a href=\"(/chengyu/cy/[0-9]+.htm)\" title=";
        //    DirectoryInfo directoryInfo = new DirectoryInfo(htmlPath);
        //    Regex regex = new Regex(regexCode);
        //    foreach (var item in directoryInfo.GetFiles())
        //    {
        //        string fileString = File.ReadAllText(item.FullName, Encoding.UTF8);
        //        MatchCollection mc= regex.Matches(fileString);

        //        for (int i = 0; i < mc.Count; i++)
        //        {
        //            GroupCollection gc = mc[i].Groups; //得到所有分组 
        //            for (int j = 1; j < gc.Count; j++) //多分组 匹配的原始文本不要
        //            {
        //                string temp = gc[j].Value;
        //                Console.WriteLine(temp);
        //                sb.AppendLine(@"http://tools.2345.com" + temp);
        //            }
        //        }


        //    }
        //    File.WriteAllText(aimPath + "all.txt", sb.ToString(), Encoding.UTF8); ;
        //}
        //public static void GetPageLevelSeven()
        //{

        //    string htmlPath = @"C:\Users\wulix\Desktop\成语\第六层";
        //    string aimPath = @"C:\Users\wulix\Desktop\成语\第七层/";
        //    StringBuilder sb = new StringBuilder();

        //    string regexCode = "<h1 class=\"cate_title_de\">[\\s\\S]+<!-- 百度推广 begin-->";

        //    DirectoryInfo directoryInfo = new DirectoryInfo(htmlPath);
        //    Regex regex = new Regex(regexCode);
        //    foreach (var item in directoryInfo.GetFiles())
        //    {
        //        Console.WriteLine(item.Name);
        //        string fileString = File.ReadAllText(item.FullName, Encoding.UTF8);
        //        Match mc = regex.Match(fileString);

        //        File.WriteAllText(aimPath + item.Name, mc.Value, Encoding.UTF8);

        //    }

        //}
        //public static void GetPageLevel8()
        //{

        //    string htmlPath = @"C:\Users\wulix\Desktop\第七层";
        //    string aimPath = @"C:\Users\wulix\Desktop\Name\";
        //    StringBuilder sb = new StringBuilder();
        //    string regexCode = "<h1 class=\"cate_title_de\">(.*?)</h1>";

        //    DirectoryInfo directoryInfo = new DirectoryInfo(htmlPath);
        //    Regex regex = new Regex(regexCode);
        //    int i = 0;
        //    foreach (var item in directoryInfo.GetFiles())
        //    {
        //        i++;
        //        string fileString = File.ReadAllText(item.FullName, Encoding.UTF8);
        //        Match mc = regex.Match(fileString);
        //        IdiomModel idiom = new IdiomModel();

        //        #region 成语名字
        //        idiom.Character = mc.Groups[1].Value;
        //        #endregion
        //        #region 拼音
        //        string recodePinYin= "<span class=\"py\">(.*?)</span></p>";
        //        Match mcPinYin = Regex.Match(fileString, recodePinYin);

        //        idiom.Pinyin= mcPinYin.Groups[1].Value;
        //        #endregion

        //        #region 解释

        //        string RexJs= "【释&nbsp;&nbsp;义】：</em><span>(.*?)</span></p>";
        //        Match mcJS = Regex.Match(fileString, RexJs);
        //        idiom.Interpretation = mcJS.Groups[1].Value;
        //        //if (string.IsNullOrEmpty(mcJS.Groups[1].Value))
        //        //{
        //        //    int j = 1;
        //        //}

        //        #endregion

        //        #region 出处
        //        string regexCc = "【出&nbsp;&nbsp;自】：</em><span>(.*?)</span></p>";
        //        Match mccc = Regex.Match(fileString, regexCc);
        //        idiom.Originate = mccc.Groups[1].Value;
        //        #endregion

        //        #region 近义词
        //        string regexJYC= "<a target=\"_blank\" href=\"/chengyu/cy/[0-9]+.htm\">([\\u4e00-\\u9fa5]+)</a>";
        //        var JYC = Regex.Matches(fileString, regexJYC);
        //        List<string> strListJYC = new List<string>();
        //        for (int k = 0; k < JYC.Count; k++)
        //        {
        //            GroupCollection gc = JYC[k].Groups; //得到所有分组 
        //            if (!strListJYC.Contains(gc[1].Value))
        //            {
        //                strListJYC.Add(gc[1].Value);
        //            }
        //        }

        //        idiom.Similar = strListJYC;
        //        #endregion

        //        #region 例句
        //        string    regexLJ = "<(dd|p)>[0-9]+\\.(.*?)</(dd|p)>";
        //        var LJ = Regex.Matches(fileString, regexLJ);
        //        List<string> strListLJ = new List<string>();
        //        for (int k = 0; k < LJ.Count; k++)
        //        {
        //            GroupCollection gc = LJ[k].Groups; //得到所有分组 
        //            if (!strListLJ.Contains(gc[2].Value))
        //            {
        //                strListLJ.Add(gc[2].Value);
        //            }
        //        }

        //        idiom.ExampleSentence = strListLJ;
        //        #endregion

        //        #region 相关成语
        //        string regexXG = "title=\"([\\u4e00-\\u9fa5]+)";
        //        var XG = Regex.Matches(fileString, regexXG);
        //        List<string> strListXG = new List<string>();
        //        for (int k = 0; k < XG.Count; k++)
        //        {
        //            GroupCollection gc = XG[k].Groups; //得到所有分组 
        //            if (!strListXG.Contains(gc[1].Value))
        //            {
        //                strListXG.Add(gc[1].Value);
        //            }
        //        }

        //        idiom.Relevant = strListXG;
        //        #endregion

        //        Console.WriteLine(i.ToString() );
        //        File.WriteAllText(aimPath + mc.Groups[1].Value + ".txt", JsonConvert.SerializeObject(idiom), Encoding.UTF8); 

        //    }

        //}
        //public static void GetPageLevel9()
        //{

        //    string htmlPath = @"C:\Users\wulix\Desktop\Name";
        //    string aimPath = @"C:\Users\wulix\Desktop\1\";
        //    List<IdiomModel> idiomModels = new List<IdiomModel>();
        //    DirectoryInfo directoryInfo = new DirectoryInfo(htmlPath);

        //    foreach (var item in directoryInfo.GetFiles())
        //    {

        //        string fileString = File.ReadAllText(item.FullName, Encoding.UTF8);

        //        IdiomModel idiomModel= JsonConvert.DeserializeObject<IdiomModel>(fileString);
        //        if (!idiomModels.Contains(idiomModel))
        //        {
        //            Console.WriteLine(idiomModel.Character);
        //            idiomModels.Add(idiomModel);
        //        }


        //    }
        //    try
        //    {
        //        Console.WriteLine("-----------");
        //        string path = aimPath + "All.txt";
        //        using (StreamWriter sw = new StreamWriter(path, false, Encoding.UTF8))
        //        {
        //            sw.Write(JsonConvert.SerializeObject(idiomModels)) ;
        //            sw.Flush();
        //        }

        //    }
        //    catch 
        //    {


        //    }

        //}
        //public static void GetPageLevel10()
        //{
        //    int i = 0;
        //    string fileString = File.ReadAllText("all.json");
        //  List<IdiomModel> idiomModels = JsonConvert.DeserializeObject<List<IdiomModel>>(fileString);
        //    List<TempModle> temp = new List<TempModle>();
        //    idiomModels.ForEach((ido)=> {
        //        TempModle tempModle = new TempModle {Character = ido.Character,Pinyin=ido.Pinyin,Interpretation=ido.Interpretation,Originate=ido.Originate,Similar=ido.Similar,ExampleSentence=ido.ExampleSentence,Relevant=ido.Relevant };
        //        i++;
        //        temp.Add(tempModle);
        //        Console.WriteLine(i.ToString() + "--" + tempModle.Character);
        //    });

        //    Console.WriteLine("-----------");

        //    using (StreamWriter sw = new StreamWriter("temp.json", false, Encoding.UTF8))
        //    {
        //        sw.Write(JsonConvert.SerializeObject(temp));
        //        sw.Flush();
        //    }


        //}
    }
}

